using Lzfy_Refund_Service.Models;

namespace Lzfy_Refund_Service.Services
{
    /// <summary>
    /// 退费任务完成情况服务接口
    /// </summary>
    public interface IRefundTaskCompletionStatusService
    {
        /// <summary>
        /// 获取所有退费任务完成情况
        /// </summary>
        /// <returns>退费任务完成情况列表</returns>
        Task<IEnumerable<RefundTaskCompletionStatus>> GetAllAsync();

        /// <summary>
        /// 根据用户名获取退费任务完成情况
        /// </summary>
        /// <param name="userName">用户账号</param>
        /// <returns>退费任务完成情况列表</returns>
        Task<IEnumerable<RefundTaskCompletionStatus>> GetByUserNameAsync(string userName);

        /// <summary>
        /// 根据用户姓名获取退费任务完成情况
        /// </summary>
        /// <param name="peopleName">用户姓名</param>
        /// <returns>退费任务完成情况列表</returns>
        Task<IEnumerable<RefundTaskCompletionStatus>> GetByPeopleNameAsync(string peopleName);

        /// <summary>
        /// 根据查询条件获取退费任务完成情况
        /// </summary>
        /// <param name="request">查询请求</param>
        /// <returns>退费任务完成情况列表</returns>
        Task<IEnumerable<RefundTaskCompletionStatus>> GetByConditionsAsync(RefundTaskCompletionStatusQueryRequest request);
    }
}